package com.molihub.service;

import com.molihub.entity.RequestMessage;

import java.util.List;

/**
 * @ClassName: RequestMessageService
 * @Description: 处理请求消息的业务层接口
 * @author: GGBOY
 * @date 2020/2/2 12:54
 * @Version: 1.0
 **/
public interface RequestMessageService {
    /**
     * 增加一条请求消息记录
     *
     * @param requestMessage 增加的请求消息
     * @return java.lang.Integer
     * @author GGBOY
     * @date 2020/2/2
     */
    public Integer addMessage(RequestMessage requestMessage);

    /**
     * 根据通信人双方ID和消息的类型查找对应的消息
     *
     * @param aUserId 发送消息用户ID
     * @param bUserId 接收消息用户ID
     * @param flag    发送的消息类型
     * @return com.molihub.entity.RequestMessage
     * @author GGBOY
     * @date 2020/2/2
     */
    public List<RequestMessage> findMessageByIdAndFlag(Integer aUserId, Integer bUserId, Integer flag);

    /**
     * 查找有关用户的未接受的好友请求消息
     *
     * @param bUserId 用户ID
     * @return com.molihub.entity.RequestMessage
     * @author GGBOY
     * @date 2020/2/2
     */
    public List<RequestMessage> findMessageByReceiveUserId(Integer bUserId);

    /**
     * 更新消息
     *
     * @param requestMessage 更新后的消息
     * @return java.lang.Integer
     * @author GGBOY
     * @date 2020/2/2
     */
    public Integer updateMessage(RequestMessage requestMessage);

    /**
     * 将 receiveUserId所对应的用户所有未读的聊天消息设为已读状态
     *
     * @param receiveUserId 用户id
     * @return java.lang.Integer
     * @author GGBOY
     * @date 2020/2/4
     */
    public Integer updateChatMessage(Integer receiveUserId);

    /**
     * 根据用户双方id，查找聊天记录
     *
     * @param aUserId 用户id
     * @param bUserId 用户id
     * @return java.util.List<com.molihub.entity.RequestMessage>
     * @author GGBOY
     * @date 2020/2/4
     */
    public List<RequestMessage> findChatMessageById(Integer aUserId, Integer bUserId);

    /**
     * 将用户的所有的通知消息设为已读
     *
     * @param userId 用户ID
     * @return void
     * @author GGBOY
     * @date 2020/2/23
     */
    public void readAll(Integer userId);
}
